<script>
  // map
  // 入参 return 核心逻辑
  function selfMap (arr, cb) {
    let _arr = []
    // 核心逻辑
    // 遍历arr数组 针对于数组中的每一项都需要使用我传入的
    // cb函数处理一下 然后把处理之后的结构push到_arr
    // 这样遍历完毕之后 _arr中就存放的是处理之后的所有项
    for (let i = 0; i < arr.length; i++) {
      let result = cb(arr[i])
      _arr.push(result)
    }
    return _arr
  }

  const arr = [1, 2, 3]
  const arr1 = selfMap(arr, (item) => {
    return item * 2
  }) // [2,4,6]
  console.log(arr1)

  // 自定义一个forEach？实现和原生forEach类似的功能
  function each (arr, cb) {

  }
  const arr2 = [1, 2, 3]
  each(arr2, (item, index) => {
    console.log(item, index)
  }) // 1,0  2,1  3,2


</script>